package edu.whut.mall.user.service;
/**
 * Author: smq
 * Unit: D9lab
 * Date: 2021-06-26 17.40
 */



import edu.whut.mall.common.vo.Page;
import edu.whut.mall.common.vo.FileVo;
import edu.whut.mall.common.enums.FileType;
import edu.whut.mall.pojo.model.File;

import javax.validation.constraints.NotNull;

public interface IFileManageUserService {

    /**
     * 通过fileId获取数据库中一条记录
     * @param id
     * @return
     * @throws Exception
     */
    FileVo getOneFile(int id) throws Exception;

    /**
     * 通过fileId或者url来获取数据库中分页记录
     * @param current
     * @param size
     * @param orderBy
     * @param asc
     * @param id
     * @param url
     * @param isDeleted
     * @return
     * @throws Exception
     */
    Page<FileVo> getFilePage(int current, int size, String orderBy, Boolean asc,
                             Integer id, String url, Integer isDeleted) throws Exception;

    /**
     * 通过fileId来删除数据库中一条记录
     * @param id
     * @return
     * @throws Exception
     */
    Integer deleteFile(int id) throws Exception;

    // 查询最新的apk
//    String queryLatestApk() throws Exception;
//    Integer addOneAndroidApk(String version, File apk, String description) throws Exception;
    //获取最新的apk信息
//    ApkFileVO getLatestApk() throws Exception;

    /**
     * 通过url往数据库中上传一条记录
     * @param url
     * @return
     */
    File addOneFile(@NotNull(message = "url不能为null") String url);

    /**
     * 通过url和文件类型往数据库中上传一条记录
     * @param url
     * @param fileType
     * @return
     */
    File addOneFile(@NotNull(message = "url不能为null") String url, FileType fileType);

    /**
     * 删除fastdfs中的文件记录，一次删100条
     * @throws Exception
     */
    void deleteFiles() throws Exception;
}
